package com.modules.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ResourceMapping {
	
	public enum Operation {
		/**
		 * MENU  改url对应的值为菜单对应的
		 * BUTTON 如果操作为列表中toolbar对应的 操作一般设置为BUTTON
		 * FUNCTION 一般为辅助性操作  如编辑页面获取编辑数据   一些验证性操作，但是要设置改操作属于哪个辅助
		 * 
		 * */
		MENU,BUTTON,FUNCTION
	}

	
	/*资源显示名称*/
	String name() ;
	/*资源类型 是menu显示还是功能操作，设置为MENU可以作为菜单存在*/
	Operation  operation();
	
	
	/**
	 * 一般都需要设置这个值，这个值得设定一般以一个页面中的进行层层下设，设置对应的父操作
	 * 如用户信息列表 对应设置为MENU，这个列表对应的toolbar有增删改查四个按钮，四个按钮的parentOperator值
	 * 指定为对应menu的值，而编辑页面有保存相关的操作，保存对应的parentOperator就是编辑的operator
	 * menu对应的parentOperator值对应的就是MenuMapping中对应的operator
	 * 
	 * 如果Operation值为MENU，operator的值也是menuCode，如果是Button值，operator的值也是button对应的id（这个地方但是不用，还没进行按钮显示权限设置）
	 * 如果是FUNCTION，暂时没有具体含义
	 * 
	 * 
	 * 这样操作只要是为了将信息进行统一，同时便于权限控制
	 * **/
	//String operator();
	//String parentOperator();

}
